package com.gsk.europepharma.salesReport.struts.actions;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.gsk.europepharma.salesReport.utils.MixProduit;
import com.gsk.europepharma.salesReport.utils.Produit;

public class SaveProduits extends Action {
	
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		HttpSession sessionObject = request.getSession();
		
		MixProduit mixProduit = (MixProduit) sessionObject.getAttribute("mixProduit");
		
		MixProduit mixProduitNew = new MixProduit();
		
		String checked_ids = request.getParameter("checked_ids");
		List<String> ids = new ArrayList<String>();
		String tabIds[] = checked_ids.split(";");
		for (String id : tabIds) {
			if (!id.equals("")) {
				ids.add(id);
			}
		}
		
		String checked_colors = request.getParameter("checked_colors");
		List<String> colors = new ArrayList<String>();
		String tabColors[] = checked_colors.split(";");
		for (String c : tabColors) {
			if (!c.equals("")) {
				colors.add(c);
			}
		}
		
		int i = 0;
		List<Produit> produits = new ArrayList<Produit>();
		for (Produit produit : mixProduit.getProduits()) {
			boolean checked = ids.contains(produit.getIdRgpt() + "-" + produit.getIdPrstn());
			if (checked && !checked_colors.equals("")) {
				Produit newProduit = new Produit(produit.getIdRgpt(), produit.getIdPrstn(), produit.getLibelle(), checked, colors.get(i));
				produits.add(newProduit);
				i++;
			} else {
				Produit newProduit = new Produit(produit.getIdRgpt(), produit.getIdPrstn(), produit.getLibelle(), checked, produit.getColor());
				produits.add(newProduit);
			}
		}
		mixProduitNew.setProduits(produits);
		
		// Save in session 
		sessionObject.setAttribute("mixProduit", mixProduitNew);
		
		return null;
	}

}
